Course Outline

Exception Handling

  • ARM modes
    • Names
    • Registers
    • Permissions
  • Exceptions
    • Exception types
    • Mapping to modes
    • Step by step transition from mode to mode
    • Using MSR and MRS
  • Handling exceptions
    • Setting up vectors
    • Setting mode stacks
    • Current context
    • Saving context
  • Working with a stack
    • Stack direction
    • Changing stack pointer
    • Especially assembly symbols
    • Load and Store multiples
  • Homework
    • uDebugger

Context Switch

  • Context Switch
  • Homework
    • Context Switch

Introduction to uCOS

  • uCOS intro
    • Overview
    • Startup
    • Stacks
    • Tasks
    • Starting a tasks

uCOS Tasks

  • uCOS Task details
    • Task states
    • Creating
    • Deleting
    • Query
    • Resuming
    • Task control blocks
    • Timer delays

Synchronization - Part 1

  • Basic concept
  • Task cooperation
  • Sharing data
  • Causes and prevention of data corruption
  • Critical sections
  • Semaphores
  • Patterns 1
  • Homework
    • Semaphore homework - TBD

Synchronization - Part 2

  • Deadlocks
  • Priority Inversions
  • Mutexes
  • Mailboxes
  • Queues
  • Flags
  • Pattern 2

Memory Managment

  • Stacks
    • Fast
    • Builtin support
    • Part of C language
    • Automatic reclaiming
    • Short lifespan
    • Should not be shared beyond lifespan of the caller
  • Heaps
    • Long life span
    • Requires management code
    • Slower
    • Fragmentation issues
    • Very flexible
    • Can be shared between tasks
  • Memory partioner
    • Long life span
    • Light weight
    • Fast
    • Needs to be setup ahead of time
    • Can be shared

Drivers

  • Purpose
  • Interface conventions
  • Setup
  • Usage
  • Examples

Music Player Project

  • Objective
  • Top down
  • Project

Large operating systems

  • Intro to virtual memory
  • Translation lookaside buffer
  • Process and threads
  • User vs kernel space

Final